Chat room services from Internet service providers and on-line services provide an informal, public meeting place where multiple participants from all over the world can converse in text, in audio, or through a shared white board. Chat rooms may be maintained by a single server or a plurality of servers spread out over a large area, connected by a network.
A typical chat room service relies on two basic components of Transfer Control Protocol/Internet Protocol (TCP/IP), the networking protocol upon which the Internet is based, clients and servers. Clients run software that allows them to connect to a server. Other implementations allow a peer-to-peer chat communication. In the client/server implementation, the server accepts connections from one or more clients at the same time. A plurality of servers are typically interconnected. From one server, a client can access the conferences and users on other servers. The plurality of servers provide the supporting structure that allow the chat room service to work. The servers maintain information on the current available chat rooms. Every time a new room is created, the information about it is passed to every other server on the network. Servers also administer which clients are currently connected and what options and features they have set up. All of this information is exchanged between servers as it is changed. A typical chat system, Internet Relay Chat (IRC), is described in the Internet RFC1459, “Internet Relay Chat Protocol”.
Current chat room services offer poor support for non-ASCII characters, making communication in languages other than English, such as ideographic languages, difficult. Furthermore, current chat room services offer poor support for sharing graphical or ink data messages among clients. Conventional ink data refers to a simple set of information related to the movement of a pen device over an electronic tablet.
In the past, some services allowed a plurality of clients to use a shared white board for sending graphical messages between clients. Each client system had a video camera directed to a white board at the client's site. The images captured by the video camera would be sent to a server. The server would superimpose the images received by each of the video cameras upon each other and send the new image to each of the clients to display
The use of a shared white board had several drawbacks. One drawback of using a shared white board is that linear conversation could not be conducted easily through the shared graphical space. When more than two clients shared a white board, it was difficult for one to determine which client was making a contribution to the shared white board and there were difficulties in keeping track of the order when each contribution was made. Another drawback of using a shared white board was that after the white board was filled, clients had to wait for other clients to erase the contents on their white board before further contribution could be made.
One special case use of chat is conventional instant messaging, whereby one client can instantly send and receive messages to/from one other client. Traditionally, instant messaging (IM) is used to quickly transfer short text messages between two networked users. Longer or more complex messages or documents can be transferred among networked users in a less timely way using conventional email. Traditional email systems support the transfer of documents composed in a variety of formats including text, graphics, GIF, JPEG, bitmap, EXE, and many others. However, the conventional IM and chat infrastructure is more limited to a very few data formats, predominantly ASCII text and/or voice formats.
As the IM and chat user base grows, it will be increasingly important to support data types other than simple ASCII text and/or voice. One such data type currently not supported by conventional IM or chat systems is a handwriting data type such as ink data. The use of ink data is particularly important in applications where conventional text data is less efficient. For example, many languages other than English use symbols, which are more efficiently drawn by hand rather than typed on a text-oriented keyboard. For another example, some portable devices, such as personal digital assistants (PDAs), cell phones, handheld devices, pagers, and the like are more efficiently used with a pen-input device. A pen-input device is more efficient for the entry of ink data rather than conventional text, unless handwriting recognition software is used. However, handwriting recognition software typically consumes many system resources.